package reflectionAndAnnotation.reflection;

import reflectionAndAnnotation.reflection.model.User;

/**
 * @author zxl
 * @version 1.0
 * @date 2021/10/22 16:31
 */
public class Theory {
    /**
     * java 反射
     * 优点：可以动态的创建对象，有很大的灵活性
     * 缺点：对性能有影响
     */
    public static void main(String[] args) throws ClassNotFoundException {
        //方式一  通过classforname
        Class<?> aClass = Class.forName("reflectionAndAnnotation.reflection.model.User");
        //方式二 通过类名
        Class<User> userClass = User.class;
        //方式三 通过对象
        User user = new User(1,"1",1);
        Class<? extends User> aClass1 = user.getClass();

        //通过父类
        Class<?> superclass = aClass.getSuperclass();
        //基本对象
        Class<Integer> type = Integer.TYPE;


        System.out.println(aClass.hashCode());
        System.out.println(userClass.hashCode());
        System.out.println(aClass.hashCode());



        int[] a = new int[10];
        int[] b = new int[100];
        System.out.println(a.getClass().hashCode());
        System.out.println(b.getClass().hashCode());
    }
}

